/**
* Copyright (C) 2013-2024 Nanjing Pengyun Network Technology Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/ 

package py.monitor.pojo.util;

public class Preconditions {
  private Preconditions() {
  }

  public static <E> E notNull(E obj) {
    return notNull(obj, null);
  }

  public static <E> E notNull(E obj, String msg) {
    if (obj == null) {
      throw (msg == null) ? new NullPointerException() : new NullPointerException(msg);
    }
    return obj;
  }

  public static void assertTrue(boolean b) {
    assertTrue(b, null);
  }

  public static void assertTrue(boolean b, String msg) {
    if (!b) {
      throw (msg == null) ? new IllegalArgumentException() : new IllegalArgumentException(msg);
    }
  }

  public static String notEmpty(String s) {
    return notEmpty(s, null);
  }

  public static String notEmpty(String s, String msg) {
    notNull(s, msg);
    if (s.isEmpty()) {
      throw (msg == null) ? new NullPointerException("empty") : new NullPointerException(msg);
    }
    return s;
  }
}
